POV-Ray : Newsgroups : povray.general : Why does POV always evaluate both expressions with a '&'? : Re: Why does POV always evaluate both expressions with a '&'? Server Time
20 Nov 2024 10:33:41 EST (-0500)
  Re: Why does POV always evaluate both expressions with a '&'?  
From: Warp
Date: 27 Sep 2001 11:57:54
Message: <3bb34c82@news.povray.org>
Thorsten Froehlich <tho### [at] trfde> wrote:
:> #while((i<n)&(a[i]=0))
:>         #declare i=i+1
:> #end

: The above code is illegal in C and C++

  How so? I don't see anything wrong there (of course if we imagine that we
convert it to equivalent C code).

  The C standard *guarantees* that the expression at the right of && is not
evaluated if the expression at the left is false. (The & operator in POV-Ray
is equivalent to the && operator in C, and it should not be confused with
the & operator in C, which does a completely different thing.)
  The example doesn't either modify the same value in the same sentence or
anything similar. It looks completely ok to me.

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.